package org.squabble.dao;

import java.util.List;

import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.squabble.domain.Account;

public interface AccountDAO {

	public Account findBy(String field, String value);

	public Account findBy(String field, String value, boolean caseSensitive);

	public Account createAccount(Account account);

	public Account updateAccount(Account account);

	public Account getAccount(Long accountId);

	public List<Account> searchAccounts(String name, String email,
			Long privilegeId, MatchMode matchMode);

	public List<Account> findAccounts(Order orderBy, Integer limit);
	
	public List<Account> list();
}
